package com.Algorithm.HUAWEI.three20220323;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zjz
 * @Date: 2022/03/23/15:06
 * @Description:
 * @Target:
 */
public class 名字的漂亮度 {
    /*
    * 描述
            给出一个字符串，该字符串仅由小写字母组成，定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
            每个字母都有一个“漂亮度”，范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。

            给出多个字符串，计算每个字符串最大可能的“漂亮度”。

            本题含有多组数据。

            数据范围：输入的名字长度满足 1≤n≤10000

            输入描述：
            第一行一个整数N，接下来N行每行一个字符串

            输出描述：
            每个字符串可能的最大漂亮程度
            *
            *
            * 输入：
            2
            zhangsan
            lisi
            复制
            输出：
            192
            101
            复制
            说明：
            对于样例lisi，让i的漂亮度为26，l的漂亮度为25，s的漂亮度为24，lisi的漂亮度为25+26+24+26=101.
    *
    *
    *
    * */


    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        Integer integer = Integer.valueOf(in.readLine());
        for (int i = 1; i <= integer; i++) {
            System.out.println(process(countLetters(in.readLine())));
        }
    }



    // 处理器
static int process(int[] ints){

    ArrayList<Integer> list = new ArrayList<>();
    for (int anInt : ints) {
        if (anInt!=0){
            list.add(anInt);
        }
    }

    Collections.sort(list, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return -(o1-o2);
        }
    });

    int count = 0;
    int num = 26;
    int len = list.size();

    for (Integer integer : list) {
        System.out.print(integer+" ");
        count+=integer*num--;
    }
    System.out.println();

    return count;
}

    // 使用数组将进来得数据进行统计,最大的到时赋值为26,再小就25,相同的顺推.
    // 先统计.
    static int[] countLetters(String ss){
        int[] ints = new int[26]; // 下标对应字母,值对应多少个,第27位为最大值

        for (int i = 0; i < ss.length(); i++) {
            if (ss.charAt(i)>='a'&&ss.charAt(i)<='z'){
                ints[ss.charAt(i)-'a']++;
//                ints[26] = Math.max(ints[26],ints[ss.charAt(i)-'a']);
            }
        }

        return ints;
    }



}
